package cn.acmenms.manager.authorization;

import cn.acmenms.exception.TokenException;
import cn.acmenms.po.vo.TokenUser;

/**
 * @ClassName: TokenManager
 * @Description: REST-鉴权-登录用户的身份鉴权-接口
 * @author: 神奇的鸭鸭
 * @Date: 2017/12/28 16:11
 */
public interface TokenManager {
    /**
     * 创建Token(用户登录时，创建Token) -> 生成JWT字符串
     *
     * @param user    tokenUser
     * @param expTime 过期时间
     * @return JWT字符串
     * @throws TokenException exception
     */
    String createToken(TokenUser user, Long expTime) throws TokenException;

    /**
     * Token验证(用户登录验证) -> 获得JWT的对象，如果没有过期
     *
     * @param token token
     * @return TokenUser
     * @throws TokenException exception
     */
    TokenUser checkToken(String token) throws TokenException;
}